package sessionBeans;

import java.util.Collection;
import java.util.List;
import javax.ejb.Local;

import objects.AbilityObject;
import objects.HelpmeetingObject;
import objects.MessageObject;
import objects.RequestNotificationObject;
import objects.UserObject;

import entityBeans.Ability;
import entityBeans.Helpmeeting;
import entityBeans.Message;
import entityBeans.RequestNotification;
import entityBeans.User;

/**
 *
 * @author user
 */
@Local
public interface UserFacadeLocal {

    void create(User user);

    void edit(User user);

    void remove(User user);
    
    Collection<HelpmeetingObject> getHelpmeetingsOfUser(User user) throws BeanException;
    
    Collection<UserObject> getFriendsOfUser(User user)throws BeanException;
    
    Collection<MessageObject> getMessagesOfUser(User user)throws BeanException;
    
    Collection<RequestNotificationObject> getNotificationsOfUser (User user)throws BeanException;
    
    Collection<AbilityObject> getAbilitiesOfUser (User user)throws BeanException;
    
    void addAbility(User user, Ability ability) throws BeanException;
    
    void addHelpmeeting(User user, Helpmeeting meeting) throws BeanException;

    void addMessage(User user, Message message, RequestNotification request) throws BeanException;
    
    void addFriend(User user, RequestNotification request)throws BeanException;
    
    // think about this again when you concentrated
    void addRequest(User user, RequestNotification request) throws BeanException;
    
    User find(Object id);

    List<User> findAll();

    List<User> findRange(int[] range);

    int count();
    
}